package com.example.d15_homework.homework02;

public class Test {
    public static void main(String[] args) {
        // 要求：在测试类Test中创建A的对象a并调用成员方法methodA(),要求用两种方式实现
        // 在此处完成代码
        A a = new A();
        a.methodA(new InterA() {
            @Override
            public void showA() {
                System.out.println("我是没有名字的InterA的实现类");
            }
        });
        // 使用Lambda表达式简化
        a.methodA(() -> System.out.println("我是没有名字的InterA的实现类"));

        new A().methodA(new InterA() {
            @Override
            public void showA() {
                System.out.println("我是有名字的InterA的实现类");
            }
        });
        // 使用Lambda表达式简化
        new A().methodA(() -> System.out.println("我是有名字的InterA的实现类"));

        InterA interA = new InterA() {
            @Override
            public void showA() {
                System.out.println("我是匿名内部类InterA的实现类");
            }
        };
        // 使用Lambda表达式简化
        // InterA interA = () -> System.out.println("我是匿名内部类InterA的实现类");
        interA.showA();

    }
}

// 定义接口
interface InterA {
    void showA();
}

class A {
    public void methodA(InterA a) {
        a.showA();
    }
}